home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gawk / gawk213b.zoo / test / df.awk < prev    next >
Text File  |  1991-04-28  |  1KB  |  39 lines

  1. BEGIN { free = -1; Blksize=512; Mbyte=1048576; CONST = Blksize / Mbyte; FS=")" }
  2. {
  3.   if (free == -1) {    # free is toggled every other line.
  4.     split($1,fsptr,"("); FSYS=fsptr[1]
  5.     split($2,freeptr," "); free=freeptr[2]+0
  6.     FS=":";
  7.     if( free == 0 && substr(freeptr[2],1,1) != "0" ) {
  8.         free = -1; next
  9.     }
  10.     next
  11.   }
  12.   split($2,allocptr," "); alloc = allocptr[1]+0
  13.   FS=")";
  14.   if (alloc == 0) next;        # avoid division by zero
  15.   TFREE= (free * CONST) - .005            # force rounding down.
  16.   TALLOC= (alloc * CONST) - .005        # force rounding down.
  17.   PCT=free * 100 / alloc
  18.   if (TFREE < 0) TFREE=0
  19.   if (TALLOC < 0) TALLOC=0
  20.   if (length(FSYS) < 17)
  21.     {
  22.      printf ("%#16s:\tDisk space: %#6.2f MB of %#6.2f MB available (%#5.2f%%).\n", FSYS, TFREE, TALLOC, PCT)
  23.     }
  24.   else
  25.     {
  26.      printf ("%s\n", FSYS)
  27.      printf ("\t\t:\tDisk space: %#6.2f MB of %#6.2f MB available (%#5.2f%%).\n", TFREE, TALLOC, PCT)
  28.     }
  29.   Cumfree += free; Cumalloc += alloc;
  30.   free = -1    # reset flag/variable for next set of two lines
  31. }
  32. END    {
  33.     CumPct=Cumfree * 100 / Cumalloc
  34.     Cumfree= (Cumfree * CONST) - .005    # force rounding down.
  35.  
  36.     Cumalloc= (Cumalloc * CONST) - .005    # force rounding down.
  37.     printf ("\n\t\t  Total Disk Space: %#6.2f MB of %#6.2f MB available (%#5.2f%%).\n", Cumfree, Cumalloc, CumPct)
  38. }
  39.